package com.zfl;
import java.util.*;
public class Q3 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();
        List<Integer> odd = new ArrayList<>();
        List<Integer> even = new ArrayList<>();
        // 分类奇数和偶数（基于a[i]+k的奇偶性）
        for (int i = 0; i < n; i++) {
            int num = sc.nextInt();
            if ((num + k) % 2 == 1) {
                odd.add(num);
            } else {
                even.add(num);
            }
        }
        int o = odd.size();
        int e = even.size();
        // 计算最大配对数
        int maxPairs = (o <= e) ? (n / 2) : e;
        System.out.println(maxPairs);
        // 构建配对
        List<List<Integer>> pairs = new ArrayList<>();
        int i = 0, j = 0;
        // 先配对奇数和偶数
        while (i < odd.size() && j < even.size()) {
            pairs.add(Arrays.asList(odd.get(i), even.get(j)));
            i++;
            j++;
        }
        // 再配对剩余的偶数（偶偶配对）
        while (j + 1 < even.size()) {
            pairs.add(Arrays.asList(even.get(j), even.get(j + 1)));
            j += 2;
        }
        // 输出所有配对
        for (List<Integer> p : pairs) {
            System.out.println(p.get(0) + " " + p.get(1));
        }
    }
}
